有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java字符数组列表

希望这只是一个快速的过程

我正在使用toCharArray();函数创建一个ArrayList,我需要在我的ArrayList中使用字符,因为我的数字开头有零值,我很确定使用int将删除这些字符。一切都很顺利,我只是不知道如何选择列表中的项目。我已经读到了关于这个问题的报道。get()函数,但我只能在执行int数组列表时才能使用它

完全有可能是这个。get()函数很好,但我还没有正确实现ArrayList这是我的代码

package com.activecactus.spanish_bingo1_2;

import 安卓.os.Bundle;
import 安卓.app.Activity;
import 安卓.view.Menu;
import 安卓.view.View;
import 安卓.widget.EditText;
import 安卓.widget.TextView;
import java.util.ArrayList;
import java.util.List;

public class Number_Reader extends Activity {

EditText readNumberET;
TextView numberLengthTV;
int currentLength;
List<String> digits = new ArrayList<String>();


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_number__reader);

    readNumberET = (EditText) findViewById(R.id.read_input);
    numberLengthTV = (TextView) findViewById(R.id.number_length);
}

public void btn_zero_click(View view) {
    add("0");}
public void btn_one_click(View view) {
    add("1");}
public void btn_two_click(View view) {
    add("2");}
public void btn_three_click(View view) {
    add("3");}
public void btn_four_click(View view) {
    add("4");}
public void btn_five_click(View view) {
    add("5");}
public void btn_six_click(View view) {
    add("6");}
public void btn_seven_click(View view) {
    add("7");}
public void btn_eight_click(View view) {
    add("8");}
public void btn_nine_click(View view) {
    add("9");}

public void add(String num)
{
    currentLength++;
    readNumberET.append(num);
}

public void onSendRead(View view) {

    int n = Integer.parseInt(readNumberET.getText().toString());

    String newNumber = String.format("%04d", n);

    char[] digits = newNumber.toCharArray();

    String str = (String) digits.get(0);

    numberLengthTV.setText(str);

}


public void onSendClear(View view) {
    readNumberET.setText(null);
    digits.clear();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

任何帮助都将不胜感激


共 (2) 个答案

  1. # 1 楼答案

    public void onSendRead(View view) {
        int n = Integer.parseInt(readNumberET.getText().toString());
        String newNumber = String.format("%04d", n);
        numberLengthTV.setText(newNumber);
    }
    

    不需要toCharArray(),因为您已经用零填充了数字

    public void add(String num) {
        if (currentLength < 4) {
            currentLength++;
            readNumberET.append(num);
        }
    }
    

    你可以使用:

    String s = "0123";
    s = s.substring(1); // "123"
    s += '4'; // "1234"
    
  2. # 2 楼答案

    我不完全确定您试图实现的是什么,以及为什么特别需要使用ArrayList,但我可以描述您在代码中面临的问题,以及如何解决它。此时,在这里声明ArrayList变量digits

    List<String> digits = new ArrayList<String>();
    

    在OnSendRead()方法中,您正在创建第二个digits变量,隐藏同名的ArrayList变量。这里

    char[] digits = newNumber.toCharArray();
    String str = (String) digits.get(0);
    

    我建议简单地删除ArrayList,并在这个方法中创建的新基本数组中使用正确的语法,如下所示

    char[] digits = newNumber.toCharArray();
    String str = digits[0]+"";